package com.hxh.dao;

import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.hxh.entity.ProjectConfigRecord;
import com.hxh.entity.input.ProjectConfigRecordInput;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface ProjectConfigRecordDao {

    Integer insert(ProjectConfigRecordInput pojo);

    int insertList(@Param("pojos") List<ProjectConfigRecordInput> pojo);

    List<ProjectConfigRecord> select(@Param("pojo") ProjectConfigRecordInput pojo);

    ProjectConfigRecord selectById(@Param("projectId") Integer projectId);

    int deleteById(@Param("projectId") Integer projectId);

    List<ProjectConfigRecord> listPage(Pagination page, @Param("pojo") ProjectConfigRecordInput pojo);

    int update(@Param("pojo") ProjectConfigRecordInput pojo);

    int updateSelective(@Param("pojo") ProjectConfigRecordInput pojo);

    void rebootSystem(@Param("projectId") Integer projectId, @Param("module") String module);

    void initSystem(@Param("projectId") Integer projectId, @Param("module") String module);

    void frontRebuildTables(@Param("projectId") Integer projectId, @Param("table") String table);

    void backRebuildTables(@Param("projectId") Integer projectId, @Param("table") String table);

    void addLocalVersion(@Param("projectId") Integer projectId);

    List<ProjectConfigRecord> getAllChangedRecord();

    void clearFrontRebuildFlag(@Param("projectId") Integer projectId, @Param("table") String table);

    void clearBackRebuildFlag(@Param("projectId") Integer projectId, @Param("table") String table);

    void clearAllRebootFlag(Integer projectId);

    void clearInitFlag(@Param("projectId") Integer projectId, @Param("module") String module);

    void clearAllInitFlag(Integer projectId);

    void clearAllFrontRebuildFlag(Integer projectId);

    void clearAllBackRebuildFlag(Integer projectId);

    void clearAllFlag(Integer projectId);
}
